//import 'dart:io';

import 'package:flutter/material.dart';

//import 'package:jverify/jverify.dart';
//import 'package:ytbusiness/config/config.dart';
import 'package:ytbusiness/config/yt_theme.dart';
import 'package:ytbusiness/utils/screen_adaptation.dart';
import 'package:provider/provider.dart';

//import 'package:ytbusiness/config/yt_theme.dart';
import 'package:ytbusiness/state/user_role.dart';
import 'package:ytbusiness/utils/helper.dart';
//import 'package:ytbusiness/utils/screen_adaptation.dart';

///
class OneClickLogin extends StatefulWidget {
  @override
  _OneClickLoginState createState() => _OneClickLoginState();
}

class _OneClickLoginState extends State<OneClickLogin> {
//  /// 统一 key
//  final String f_result_key = "result";
//  /// 错误码
//  final  String  f_code_key = "code";
//  /// 回调的提示信息，统一返回 flutter 为 message
//  final  String  f_msg_key  = "message";
//  /// 运营商信息
//  final  String  f_opr_key  = "operator";
//
//
//  String _platformVersion = 'Unknown';
//  String _result = "token=";
//  var controllerPHone = new TextEditingController();
//  final Jverify jverify = new Jverify();
//  bool _loading = false;
//  String _token;
//
//
//  @override
//  void initState() {
//    super.initState();
//    initPlatformState();
//  }
//
//  @override
//  Widget build(BuildContext context) {
//    return MaterialApp(
//      home: Scaffold(
//        appBar: AppBar(
//          title: const Text('JVerify example'),
//        ),
//        body: Offstage(
//          offstage:_loading,
//          child:_buildContent() ,
//        )
//        //ModalProgressHUD(child: _buildContent(), inAsyncCall: _loading),
//      ),
//    );
//  }
//
//  Widget _buildContent() {
//    return Center(
//      widthFactor: 2,
//      child: new Column(
//        children: <Widget>[
//          Container(
//            margin: EdgeInsets.all(20),
//            color: Colors.brown,
//            child: Text(_result),
//            width: 300,
//            height: 100,
//          ),
//          new Container(
//            margin: EdgeInsets.fromLTRB(40, 5, 40, 5),
//            child: new Row(
//              mainAxisAlignment: MainAxisAlignment.center,
//              children: <Widget>[
//                new CustomButton(
//                    onPressed: (){
//                      isInitSuccess();
//                    },
//                    title: "初始化状态"
//                ),
//                new Text("   "),
//                new CustomButton(
//                  onPressed: (){
//                    checkVerifyEnable();
//                  },
//                  title: "网络环境是否支持",
//                ),
//              ],
//            ),
//          ),
//          new Container(
//            child: SizedBox(
//              child: new CustomButton(
//                onPressed: () {
//                  getToken();
//                },
//                title: "获取号码认证 Token",
//              ),
//              width: double.infinity,
//            ),
//            margin: EdgeInsets.fromLTRB(40, 5, 40, 5),
//          ),
//          new Container(
//            child: TextField(
//              autofocus: false,
//              style: TextStyle(color: Colors.black),
//              decoration: InputDecoration(
//                  hintText: "手机号码", hintStyle: TextStyle(color: Colors.black)),
//              controller: controllerPHone,
//            ),
//            margin: EdgeInsets.fromLTRB(40, 5, 40, 5),
//          ),
//          new Container(
//            child: SizedBox(
//              child: new CustomButton(
//                onPressed: () {
//                  preLogin();
//                },
//                title: "预取号",
//              ),
//              width: double.infinity,
//            ),
//            margin: EdgeInsets.fromLTRB(40, 5, 40, 5),
//          ),
//          new Container(
//            child: SizedBox(
//              child: new CustomButton(
//                onPressed: () {
//                  loginAuth();
//                },
//                title: "一键登录",
//              ),
//              width: double.infinity,
//            ),
//            margin: EdgeInsets.fromLTRB(40, 5, 40, 5),
//          ),
//          new Container(
//            child: SizedBox(
//              child: new CustomButton(
//                onPressed: () {
//                  getSMSCode();
//                },
//                title: "获取验证码",
//              ),
//              width: double.infinity,
//            ),
//            margin: EdgeInsets.fromLTRB(40, 5, 40, 5),
//          ),
//        ],
//        mainAxisAlignment: MainAxisAlignment.start,
//      ),
//    );
//  }
//
//  /// sdk 初始化是否完成
//  void isInitSuccess() {
//    jverify.isInitSuccess().then((map) {
//      bool result = map[f_result_key];
//      setState(() {
//        if (result) {
//          _result = "sdk 初始换成功";
//        }else {
//          _result = "sdk 初始换失败";
//        }
//      });
//    });
//  }
//
//  /// 判断当前网络环境是否可以发起认证
//  void checkVerifyEnable() {
//    jverify.checkVerifyEnable().then((map) {
//      bool result = map[f_result_key];
//      setState(() {
//        if (result) {
//          _result = "当前网络环境【支持认证】！";
//        }else {
//          _result = "当前网络环境【不支持认证】！";
//        }
//      });
//    });
//  }
//
//
//  /// 获取号码认证token
//  void getToken() {
//    setState(() {
//      _loading = true;
//    });
//    jverify.checkVerifyEnable().then((map) {
//      bool result = map[f_result_key];
//      if (result) {
//        jverify.getToken().then((map) {
//          int code = map[f_code_key];
//          _token = map[f_msg_key];
//          String operator = map[f_opr_key];
//          setState(() {
//            _loading = false;
//            _result = "[$code] message = $_token, operator = $operator";
//          });
//        });
//      } else {
//        setState(() {
//          _loading = false;
//          _result = "[2016],msg = 当前网络环境不支持认证";
//        });
//      }
//    });
//  }
//  /// 获取短信验证码
//  void getSMSCode(){
//    setState(() {
//      _loading = true;
//    });
//    String phoneNum = controllerPHone.text;
//    if(phoneNum == null||phoneNum.isEmpty){
//      setState(() {
//        _loading = false;
//        _result = "[3002],msg = 没有输入手机号码";
//      });
//      return;
//    }
//    jverify.checkVerifyEnable().then((map) {
//      bool result = map[f_result_key];
//      if (result) {
//        jverify.getSMSCode(phoneNum: phoneNum).then((map) {
//          print("获取短信验证码：${map.toString()}");
//          int code = map[f_code_key];
//          String message = map[f_msg_key];
//          setState(() {
//            _loading = false;
//            _result = "[$code] message = $message";
//          });
//        });
//      }else {
//        setState(() {
//          _loading = false;
//          _result = "[3004],msg = 获取短信验证码异常";
//        });
//      }
//    });
//  }
//
//  /// 登录预取号
//  void preLogin(){
//    setState(() {
//      _loading = true;
//    });
//    jverify.checkVerifyEnable().then((map) {
//      bool result = map[f_result_key];
//      if (result) {
//        jverify.preLogin().then((map) {
//          print("预取号接口回调：${map.toString()}");
//          int code = map[f_code_key];
//          String message = map[f_msg_key];
//          setState(() {
//            _loading = false;
//            _result = "[$code] message = $message";
//          });
//        });
//      }else {
//        setState(() {
//          _loading = false;
//          _result = "[2016],msg = 当前网络环境不支持认证";
//        });
//      }
//    });
//  }
//
//  /// SDK 请求授权一键登录
//  void loginAuth() {
//    setState(() {
//      _loading = true;
//    });
//    jverify.checkVerifyEnable().then((map) {
//      bool result = map[f_result_key];
//      if (result) {
//
//        final screenSize = MediaQuery.of(context).size;
//        final screenWidth = screenSize.width;
//        final screenHeight = screenSize.height;
//        bool isiOS = Platform.isIOS;
//
//        /// 自定义授权的 UI 界面，以下设置的图片必须添加到资源文件里，
//        /// android项目将图片存放至drawable文件夹下，可使用图片选择器的文件名,例如：btn_login.xml,入参为"btn_login"。
//        /// ios项目存放在 Assets.xcassets。
//        ///
//        JVUIConfig uiConfig = JVUIConfig();
//        //uiConfig.authBackgroundImage = ;
//
//        //uiConfig.navHidden = true;
//        uiConfig.navColor = 0xffFFFFFF;
//        uiConfig.navText = "登录";
//        uiConfig.navTextColor = 0xff333333;
//        uiConfig.navReturnImgPath = "return";//图片必须存在
//
//        uiConfig.logoWidth = 84;
//        uiConfig.logoHeight = 84;
//        //uiConfig.logoOffsetX = isiOS ? 0 : null;//(screenWidth/2 - uiConfig.logoWidth/2).toInt();
//        uiConfig.logoOffsetY = 100;
//        uiConfig.logoVerticalLayoutItem = JVIOSLayoutItem.ItemSuper;
//        uiConfig.logoHidden = false;
//        uiConfig.logoImgPath = "logo";
//
//        uiConfig.numberFieldWidth = 200;
//        uiConfig.numberFieldHeight = 40 ;
//        //uiConfig.numFieldOffsetX = isiOS ? 0 : null;//(screenWidth/2 - uiConfig.numberFieldWidth/2).toInt();
//        uiConfig.numFieldOffsetY = isiOS ? 100 : 200;
//        uiConfig.numberVerticalLayoutItem = JVIOSLayoutItem.ItemLogo;
//        uiConfig.numberColor = YTTheme.theme.value;
//        uiConfig.numberSize = 18;
//
//        uiConfig.sloganOffsetY = isiOS ? 100 : 240;
//        uiConfig.sloganVerticalLayoutItem = JVIOSLayoutItem.ItemNumber;
//        uiConfig.sloganTextColor = Colors.black.value;
//        uiConfig.sloganTextSize = 15;
////        uiConfig.slogan
//        //uiConfig.sloganHidden = 0;
//
//        uiConfig.logBtnWidth = 250;
//        uiConfig.logBtnHeight = 50;
//        //uiConfig.logBtnOffsetX = isiOS ? 0 : null;//(screenWidth/2 - uiConfig.logBtnWidth/2).toInt();
//        uiConfig.logBtnOffsetY = isiOS ? 100 : 310;
//        uiConfig.logBtnVerticalLayoutItem = JVIOSLayoutItem.ItemSlogan;
//        uiConfig.logBtnText = "一键登录";
//        uiConfig.logBtnTextColor = Colors.white.value;
//        uiConfig.logBtnTextSize = 16;
//        uiConfig.loginBtnNormalImage = "login_btn_normal";//图片必须存在
//        uiConfig.loginBtnPressedImage = "login_btn_press";//图片必须存在
//        uiConfig.loginBtnUnableImage = "login_btn_unable";//图片必须存在
//
//        uiConfig.privacyHintToast = true;//only android 设置隐私条款不选中时点击登录按钮默认显示toast。
//
//        uiConfig.privacyState = true;//设置默认勾选
//        uiConfig.privacyCheckboxSize = 15;
//        uiConfig.checkedImgPath = "check_image";//图片必须存在
//        uiConfig.uncheckedImgPath = "uncheck_image";//图片必须存在
//        uiConfig.privacyCheckboxInCenter = true;
//        //uiConfig.privacyCheckboxHidden = false;
//
//        //uiConfig.privacyOffsetX = isiOS ? (20 + uiConfig.privacyCheckboxSize) : null;
//        uiConfig.privacyOffsetY = 15;// 距离底部距离
//        uiConfig.privacyVerticalLayoutItem = JVIOSLayoutItem.ItemSuper;
//        uiConfig.clauseName = "《云途养护用户协议》";
//        uiConfig.clauseUrl = "http://www.baidu.com";
//        uiConfig.clauseBaseColor = Colors.black.value;
//        uiConfig.clauseColor = YTTheme.theme.value;
//        uiConfig.privacyText = ["1.","2."];
//        uiConfig.privacyTextSize = 13;
//        //uiConfig.privacyWithBookTitleMark = true;
//        //uiConfig.privacyTextCenterGravity = false;
//        uiConfig.authStatusBarStyle =  JVIOSBarStyle.StatusBarStyleDarkContent;
//        uiConfig.privacyStatusBarStyle = JVIOSBarStyle.StatusBarStyleDefault;
//        uiConfig.modelTransitionStyle = JVIOSUIModalTransitionStyle.CrossDissolve;
//
//        uiConfig.statusBarColorWithNav = true;
//        uiConfig.virtualButtonTransparent = true;
//
//        uiConfig.privacyStatusBarColorWithNav = true;
//        uiConfig.privacyVirtualButtonTransparent = true;
//
//        uiConfig.needStartAnim = true;
//        uiConfig.needCloseAnim = true;
//
//        uiConfig.privacyNavColor =  Colors.white.value;
//        uiConfig.privacyNavTitleTextColor = Colors.black.value;
//        uiConfig.privacyNavTitleTextSize = 16;
//
//        uiConfig.privacyNavTitleTitle  ="ios lai le";//only ios
//        uiConfig.privacyNavTitleTitle1 = "云途养护用户协议";
//        uiConfig.privacyNavTitleTitle2 = "协议22 web页标题";
//        uiConfig.privacyNavReturnBtnImage = "return";//图片必须存在;
//
//        /// 添加自定义的 控件 到授权界面
//        List<JVCustomWidget> widgetList = [];
//        /// 步骤 1：调用接口设置 UI
//        jverify.setCustomAuthorizationView(true, uiConfig, landscapeConfig:
//        uiConfig,widgets: widgetList);
//
//        /// 步骤 2：调用一键登录接口
//
//        /// 方式一：使用同步接口 （如果想使用异步接口，则忽略此步骤，看方式二）
//        /// 先，添加 loginAuthSyncApi 接口回调的监听
//        jverify.addLoginAuthCallBackListener((event){
//          setState(() {
//            _loading = false;
//            _result = "监听获取返回数据：[${event.code}] message = ${event.message}";
//          });
//          print("通过添加监听，获取到 loginAuthSyncApi 接口返回数据，code
//          =${event.code},message = ${event.message},
//          operator = ${event.operator}");
//        });
//        /// 再，执行同步的一键登录接口
//        jverify.loginAuthSyncApi(autoDismiss: true);
//      } else {
//        setState(() {
//          _loading = false;
//          _result = "[2016],msg = 当前网络环境不支持认证";
//        });
//
//        /*
//        final String text_widgetId = "jv_add_custom_text";// 标识控件 id
//        JVCustomWidget textWidget = JVCustomWidget(text_widgetId,
//        JVCustomWidgetType.textView);
//        textWidget.title = "新加 text view 控件";
//        textWidget.left = 20;
//        textWidget.top = 360 ;
//        textWidget.width = 200;
//        textWidget.height  = 40;
//        textWidget.backgroundColor = Colors.yellow.value;
//        textWidget.isShowUnderline = true;
//        textWidget.textAlignment = JVTextAlignmentType.center;
//        textWidget.isClickEnable = true;
//
//        // 添加点击事件监听
//        jverify.addClikWidgetEventListener(text_widgetId, (eventId) {
//          print("receive listener - click widget event :$eventId");
//          if (text_widgetId == eventId) {
//            print("receive listener - 点击【新加 text】");
//          }
//        });
//        widgetList.add(textWidget);
//
//        final String btn_widgetId = "jv_add_custom_button";// 标识控件 id
//        JVCustomWidget buttonWidget = JVCustomWidget(btn_widgetId, JVCustomWidgetType.button);
//        buttonWidget.title = "新加 button 控件";
//        buttonWidget.left = 100;
//        buttonWidget.top = 400;
//        buttonWidget.width = 150;
//        buttonWidget.height  = 40;
//        buttonWidget.isShowUnderline = true;
//        buttonWidget.backgroundColor = Colors.brown.value;
//        //buttonWidget.btnNormalImageName = "";
//        //buttonWidget.btnPressedImageName = "";
//        //buttonWidget.textAlignment = JVTextAlignmentType.left;
//
//        // 添加点击事件监听
//        jverify.addClikWidgetEventListener(btn_widgetId, (eventId) {
//          print("receive listener - click widget event :$eventId");
//          if (btn_widgetId == eventId) {
//            print("receive listener - 点击【新加 button】");
//          }
//        });
//        widgetList.add(buttonWidget);
//        */
//
//
//        /* 弹框模式
//        JVPopViewConfig popViewConfig = JVPopViewConfig();
//        popViewConfig.width = (screenWidth - 100.0).toInt();
//        popViewConfig.height = (screenHeight - 150.0).toInt();
//
//        uiConfig.popViewConfig = popViewConfig;
//        */
//
//
//        /*
//
//        /// 方式二：使用异步接口 （如果想使用异步接口，则忽略此步骤，看方式二）
//
//        /// 先，执行异步的一键登录接口
//        jverify.loginAuth(true).then((map) {
//
//          /// 再，在回调里获取 loginAuth 接口异步返回数据（如果是通过添加 JVLoginAuthCallBackListener 监听来获取返回数据，则忽略此步骤）
//          int code = map[f_code_key];
//          String content = map[f_msg_key];
//          String operator = map[f_opr_key];
//          setState(() {
//            _loading = false;
//            _result = "接口异步返回数据：[$code] message = $content";
//          });
//          print("通过接口异步返回，获取到 loginAuth 接口返回数据，code=$code,message = $content,operator = $operator");
//        });
//
//        */
//
//      }
//    });
//  }
//
//
//
//
//  // Platform messages are asynchronous, so we initialize in an async method.
//  Future<void> initPlatformState() async {
//    String platformVersion;
//
//    // 初始化 SDK 之前添加监听
//    jverify.addSDKSetupCallBackListener((JVSDKSetupEvent event){
//      print("receive sdk setup call back event :${event.toMap()}");
//    });
//
//    jverify.setDebugMode(true); // 打开调试模式
//    jverify.setup(
//        appKey: Config.jpAppKey,//"你自己应用的 AppKey",
//        channel: "devloper-default"); // 初始化sdk,  appKey 和 channel 只对ios设置有效
//    // If the widget was removed from the tree while the asynchronous platform
//    // message was in flight, we want to discard the reply rather than calling
//    // setState to update our non-existent appearance.
//    if (!mounted) return;
//
//    setState(() {
//      _platformVersion = platformVersion;
//    });
//
//    /// 授权页面点击时间监听
//    jverify.addAuthPageEventListener((JVAuthPageEvent event) {
//      print("receive auth page event :${event.toMap()}");
//    });
//  }
//}
//
///// 封装 按钮
//class CustomButton extends StatelessWidget {
//
//  final VoidCallback onPressed;
//  final String title;
//
//  const CustomButton({@required this.onPressed, this.title});
//
//  @override
//  Widget build(BuildContext context) {
//    // TODO: implement build
//    return new FlatButton(
//      onPressed: onPressed,
//      child: new Text("$title"),
//      color: Color(0xff585858),
//      highlightColor: Color(0xff888888),
//      splashColor: Color(0xff888888),
//      textColor: Colors.white,
//      padding: EdgeInsets.fromLTRB(10, 5, 10, 5),
//    );
//  }
//}
//
  int role;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    role = Provider.of<UserRole>(context, listen: false).role;
    print(role);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(
        elevation: 0,
        centerTitle: true,
        backgroundColor: Colors.white,
        leading: GestureDetector(
          behavior: HitTestBehavior.opaque,
          onTap: () {
            Navigator.pop(context);
          },
          child: Row(
            children: [
              Container(
                height: setWidth(44),
                width: setWidth(50),
                child: Icon(
                  Icons.close,
                  color: Colors.black,
                ),
              ),
            ],
          ),
        ),
      ),
      body: SingleChildScrollView(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            SizedBox(
              height: setWidth(100),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Text(
                  '登录云途养护',
                  style: TextStyle(
                    color: Color(0xff333333),
                    fontSize: setSp(26),
                  ),
                ),
                Text(
                  _getText(role),
                  style: TextStyle(
                    color: YTTheme.theme,
                    fontSize: setSp(26),
                  ),
                ),
              ],
            ),
            SizedBox(
              height: setWidth(110),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                Text(
                  '152****8476',
                  style: TextStyle(
                    color: Color(0xff323232),
                    fontSize: setSp(18),
                  ),
                ),
                SizedBox(
                  width: setWidth(15),
                ),
                InkWell(
                  onTap: () {
                    print('编辑点击事件,  编辑点击事件!!!!!');
                  },
                  child: Row(
                    children: [
                      Image.asset(
                        'assets/images/editor_image.png',
                        width: setWidth(12),
                        height: setWidth(12),
                        fit: BoxFit.fill,
                        color: YTTheme.theme,
                      ),
                      SizedBox(
                        width: setWidth(5),
                      ),
                      Text(
                        '编辑',
                        style: TextStyle(
                          color: YTTheme.theme,
                          fontSize: setSp(14),
                        ),
                      ),
                    ],
                  ),
                ),
              ],
            ),
            SizedBox(
              height: setWidth(38),
            ),
            Padding(
              padding: EdgeInsets.symmetric(horizontal: setWidth(20)),
              child: InkWell(
                onTap: () async {
//                  print('=================== 一键登录 ===================');
//                  urlPush(context, "yuntu://phone_sms_verification");
                  switch (role) {
                    case 1:
                      urlPush(context, "yuntu://create_store");
                      break;
                    case 2:
                      urlPush(context, "yuntu://create_store");
                      break;
                    case 3:
                      urlPush(context, "yuntu://scout");
                      break;
                  }
                },
                child: Container(
                  height: setWidth(50),
                  decoration: BoxDecoration(
                    color: YTTheme.theme,
                    borderRadius: BorderRadius.circular(setWidth(4)),
                  ),
                  alignment: Alignment.center,
                  child: Text(
                    '一键登录',
                    style: TextStyle(
                      color: Colors.white,
                      fontSize: setSp(16),
                    ),
                  ),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }

  ///
  String _getText(int role) {
    switch (role) {
      case 1:
        return "修理厂";
        break;
      case 2:
        return "汽配商";
        break;
      case 3:
        return "勘察员";
        break;
    }
  }
}
